The present invention relates generally to data communications, and more particularly, to a system and method for data synchronization across digital device interfaces.
Modern electronic systems include devices that operate on multiple clock signals having varying clock frequencies. For example, a data processing system may include multiple input/output (I/O) devices, a memory, and a microprocessor, all of which operate at different clock frequencies. The I/O devices transmit and receive data from the memory and microprocessor. Since the I/O devices, the memory, and the microprocessor operate at different clock frequencies, data transfer systems are necessary to facilitate data transfer between these devices. For example, a data processing system may include ‘N’ I/O devices that interface using an advanced extensible interface (AXI) operating at a first clock frequency and a cache memory interface using an eLink interface operating at a second clock frequency. Since the AXI and eLink interfaces operate at different clock frequencies, a data transfer system is needed to facilitate transfers between these interfaces.
A conventional data transfer system includes exchanging handshake signals between different clock domains before transferring actual data. Upon successful completion of the handshake, data transfer is initiated. Typically, the AXI and eLink interfaces send read requests and responses in a random order. Thus, a re-ordering mechanism is required to transmit responses to the AXI interface in a set order. Conventional data transfer systems maintain a static mapping table for the re-ordering mechanism. When the AXI interface sends a read request to the eLink interface, an entry of the read request is made in the mapping table, and upon receiving a response to the read request, the read response is stored in the mapping table. Since read responses are received from the eLink interface in a random order, the responses are transmitted back to the AXI interface when a complete set of responses has been received, corresponding to a batch of read requests.
Although, the conventional data transfer systems successfully transmit data between the AXI and eLink interfaces, there are several shortcomings. The data transfer systems entail exchange of handshake signals before initiating the data transfer, which leads to latency during data processing and negatively affects system performance. Further, using static mapping tables for re-ordering read responses leads to inefficient storage space management.
Therefore, it would be advantageous to have a data transfer system that eliminates the need for exchanging handshake signals, that is fast and efficient, and that overcomes the above-mentioned limitations of conventional data transfer systems.